#ifndef _COMM_ACCESS_H_
#define _COMM_ACCESS_H_

#ifdef __cplusplus
extern "C" {
#endif

struct _access;
typedef struct _access Access;

//连接函数
typedef void * (*func_open)(const char * key);

//关闭函数， 参数为func_open返回的数据
//如果是connect中产生的内存分配，则需要在这里销毁
typedef void (*func_close)(void * obj);

//创建 max_count_per_conn 每个id对应的最大连接数
Access * access_create(func_open opan,
                       func_close cloze,
                       int max_count_per_conn);

//获取一个连接
void * access_get(Access * acc, const char * key);

//释放一个连接
int access_release(Access * acc, const char * key, void * obj);

//关闭一个连接，一般用于出错时候
int access_close(Access * acc, const char * key, void * obj);

//销毁
void access_destory(Access * acc);

#ifdef __cplusplus
}
#endif

#endif
